const {
	app,
	conn
} = require('./serive')
const jwt = require('jsonwebtoken');

// 注册
app.post('/user/resister', (req, res) => {
	const phone = req.body.phone
	const password = req.body.password

	const sqlStr = `insert into user (phone,password) values (${phone},${password})`
	const querySqlStr = 'select * from user';
	conn.query(querySqlStr, (err, results) => {
		console.log()
		let phoneItem = results.find(item => item.phone == phone);
		if (phoneItem) {
			res.json({
				code: 0,
				message: '用户已注册'
			})
			return
		}
		conn.query(sqlStr, (err, results) => {
			console.log(err, results)
			if (err) return res.json({
				code: 0,
				message: '添加失败',
			})
			res.json({
				code: 1,
				message: '注册成功',
			})
		})
	})

})

// 登陆

app.post('/user/login', (req, res) => {
	const hero = req.body;
	const querySqlStr = 'select * from user';
	conn.query(querySqlStr, (err, results) => {
		console.log(results)
		let phoneItem = results.find(item => item.phone == hero.phone);
		if (!phoneItem) {
			res.json({
				code: 0,
				message: '暂无用户'
			})
			return
		}
		if (phoneItem && phoneItem.password != hero.password) {
			res.json({
				code: 0,
				message: '密码错误'
			})
			return
		}
		let content = {
			name: req.body.name
		};
		// 要生成token的主题信息，可以是用户的id、用户名等唯一的标识名，
		//也可以是数据库自己的id（一般使用数据库自己的id即可），但不可以是用户的密码，
		//类型可以是对象或字符串
		let secret = "ces"
		// 这是加密的key（密钥）,可以是任意的内容，但在开发中一般不写在代码中，而是一个文件
		let token = jwt.sign(content, secret, {
			expiresIn: 60 * 60 * 1 // 1小时过期
		});
		res.json({
			code: 1,
			message: '登陆成功',
			token
		})
	})
})


